#define _CRT_SECURE_NO_WARNINGS

//#include<stdio.h>
//#include<math.h>
//
//  struct ListNode {
//      int val;
//      struct ListNode *next;
//  };
// 
//typedef struct ListNode ListNode;
//struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2)
//{
//    if (l1->val == 0 && l2->val == 0)
//        return l1;
//    ListNode* cur = l1;
//    ListNode* pcur = l2;
//    int count1 = 0, count2 = 0;
//    int sum1 = 0, sum2 = 0;
//
//    while (cur)
//    {
//        count1++;
//        cur = cur->next;
//    }
//    while (count1)
//    {
//        sum1 += (int)pow(10, count1 - 1);
//        count1--;
//    }
//    while (pcur)
//    {
//        count2++;
//        pcur = pcur->next;
//    }
//    while (count2)
//    {
//        sum2 += (int)pow(10, count2 - 1);
//        count2--;
//    }
//    ListNode* p = NULL;
//    int sum = sum1 + sum2;
//    ListNode* t = NULL;
//    while (sum)
//    {
//        if (p == NULL)
//        {
//            p = (ListNode*)malloc(sizeof(ListNode));
//            p->next = NULL;
//            p->val = sum % 10;
//            t = p;
//        }
//        else
//        {
//            ListNode* newnode = (ListNode*)malloc(sizeof(ListNode));
//            p->next = newnode;
//            newnode->next = NULL;
//            p = newnode;
//            p->val = sum % 10;
//        }
//        sum /= 10;
//    }
//    return t;
//}
//
//int main()
//{
//    ListNode* l1;
//    ListNode* l2;
//    addTwoNumbers(l1,l2);
//
//    return 0;
//}

#include"Queue.h"

int main()
{
	Queue sl;
	QueueInit(&sl);

	//printf("%d", QueueSize(&sl));
	QueuePush(&sl,1);
	QueuePush(&sl, 2);
	QueuePush(&sl, 3);
	QueuePush(&sl, 4);
	printf("%d ",QueueTail(&sl));


	while (!QueueEmpty(&sl))
	{
		printf("%d ", QueueTop(&sl));
		QueuePop(&sl);
	}

	QueueDestroy(&sl);
	return 0;
}